博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react入门----(this.state/表单/Ajax)
阅读量:4591 次
发布时间:2019-06-09

本文共 3114 字,大约阅读时间需要 10 分钟。

1.this.state

  组件免不了要与用户互动,React 的一大创新,就是将组件看成是一个状态机,一开始有一个初始状态,然后用户互动,导致状态变化,从而触发重新渲染 UI

1 var TestStateComponent = React.createClass({ 2             getInitialState: function () { 3                 return { 4                     liked: false 5                 } 6             }, 7             handleClick: function (event) { 8                 this.setState({ 9                     liked: !this.state.liked10                 })11             },12             render: function () {13                 var text = this.state.liked ? "like" : "haven't liked"14                 return (15                     

16 You {text} this Click to toggle17

18 )19 }20 })21 ReactDOM.render(
,document.getElementById('container'))

  上面代码是一个 TestStateComponent 组件,它的 getInitialState 方法用于定义初始状态,也就是一个对象,这个对象可以通过 this.state 属性读取。当用户点击组件,导致状态变化,this.setState 方法就修改状态值,每次修改以后,自动调用 this.render 方法,再次渲染组件。

  由于 this.props 和 this.state 都用于描述组件的特性,可能会产生混淆。一个简单的区分方法是,this.props 表示那些一旦定义,就不再改变的特性,而 this.state 是会随着用户互动而产生变化的特性。

2.表单

1 
2 var Input = React.createClass({ 3 getInitialState: function () { 4 return { 5 inputVal: '' 6 } 7 }, 8 handleChange: function (event) { 9 console.log(event.target.value)10 this.setState({11 inputVal: event.target.value12 })13 },14 render: function () {15 var value = this.state.inputVal16 return (17
18
19

{value}

20
21 )22 }23 })24
25 ReactDOM.render(,document.getElementById('container'))

 3.Ajax

1 var UserList = React.createClass({ 2             getInitialState: function () { 3                 return { 4                     userName: '', 5                     lastGisUrl 6                 } 7             }, 8             componentDidMunt: function () { 9                 $.get(this.props.source, function (res) {10                     var lastDist = res[0]11                     this.setState({  12                         username: lastGist.owner.login,  13                         lastGistUrl: lastGist.html_url  14                       });  15                     }.bind(this))16                 })17             },18             
19 componentWillUnmount: function() { 20 this.serverRequest.abort()21 },22 render: function() {23 return (24
25 {this.state.username}'s last gist is26
here.27
28 )29 }30 })31
34 ReactDOM.render(35
,36 document.getElementById('container')37 )38

 

转载于:https://www.cnblogs.com/songdongdong/p/7306689.html

你可能感兴趣的文章
sql语句一些简单的用法
查看>>
领域驱动设计之聚合与聚合根实例一
查看>>
selenium中各个模块操作:下拉框、鼠标悬浮连贯、拼图拖拽操作
查看>>
C# 调用Windows图片查看器
查看>>
Excel系列教程(1):如何自动填充单元格
查看>>
jQuery中的冒泡事件和阻止冒泡
查看>>
pythonchallenge闯关 第13题
查看>>
linux上很方便的上传下载文件工具rz和sz使用介绍
查看>>
React之特点及常见用法
查看>>
【WEB前端经验之谈】时间一年半,或沉淀、或从零开始。
查看>>
优云软件助阵GOPS·2017全球运维大会北京站
查看>>
java23中设计模式只责任链模式
查看>>
linux 装mysql的方法和步骤
查看>>
poj3667(线段树区间合并&区间查询)
查看>>
51nod1241(连续上升子序列)
查看>>
SqlSerch 查找不到数据
查看>>
集合相关概念
查看>>
Memcache 统计分析!
查看>>
(Python第四天)字符串
查看>>
个人介绍
查看>>